<?php

class Solicitudes_CronogramaController extends Zend_Controller_Action
{
	private $nav;
	private $infoPrograma;
	private $codproceso;
	private $datosproceso;
	private $codestado;
	
	
    public function init() {
        $sesionProceso = new Zend_Session_Namespace("PROCESO");
		$this->codproceso = $sesionProceso->codproceso;
		
		$Proceso = new Solicitudes_Model_DetalleSolicitud();
        $this->datosproceso = $Proceso->cargardatosProceso($this->codproceso);
        
        $Programa = new Programas_Model_Programas();
		$this->view->infoPrograma = $Programa->getProgramas(array("codprograma"=>$this->datosproceso["codprograma"]));
		$this->view->infoPrograma[0]["codproceso"] = $this->codproceso;
    	
    	$this->nav = new App_Util_Navegacion();
		$this->nav->agregar_navegacion("Lista de solicitudes", "/solicitudes/index/lista","Lista de solicitudes");
        $this->nav->agregar_navegacion("Información del programa","","");
		$this->view->nav = $this->nav;
		
		//Resumen Informacion del programa (va en todos los actions)
		//$this->instituciones = new Instituciones_Model_Instituciones();
		//$infoinstitucion= $this->instituciones->cargardatosInfo($codinstitucion);
		//$this->view->infoInstitucion=$infoinstitucion;
    }

    public function indexAction() {
        $form = new Solicitudes_Form_Cronograma();
        $form->recoverFromRedirect();
        $cronograma = new Solicitudes_Model_Cronogramas();
        $codactividad = $this->_getParam("codactividad");
        if (!empty($codactividad)){
            $form->populate ( $cronograma->cargarActividad($codactividad) );
        }
        $this->view->actividades = $cronograma->getActividadesCronograma($this->codproceso);
        
        $form2 = new Solicitudes_Form_Adjuntos();
        $this->view->form2 = $form2;
        
        if (!empty($this->datosproceso["coddoccronograma"])){
            $adjunto = new Generales_Model_Documentos();
            $this->view->adjunto = $adjunto->cargarDatos($this->datosproceso["coddoccronograma"]);
        }
        $this->view->form = $form;
    }
       
    public function guardaractividadAction(){
        $form = new Solicitudes_Form_Cronograma();
        if($this->getRequest()->isPost() && $form->isValid($this->getRequest()->getPost())){
			try {
				$cronograma = new Solicitudes_Model_Cronogramas();
				$datos = $this->getRequest()->getPost();
				$datos["codproceso"] = $this->datosproceso["codproceso"];

				$cronograma->guardarActividad($datos);
				$this->view->priorityMessenger("Los datos se han guardado correctamente", "success");
			} catch (Exception $e) {
				$this->view->priorityMessenger($e->getMessage(), "error");
			}
        } else {
            $form->setStateRedirect();
            foreach ($form->getMessages() as $key => $value) {
            	$this->view->priorityMessenger("{$form->getElement($key)->getLabel()} ".array_shift($value), "error");
            }
        }
        $this->_helper->redirector("index");
	}

  public function eliminaractividadAction(){
  	      try {
			  $cronograma = new Solicitudes_Model_Cronogramas();
			  $cronograma->eliminarActividad($this->_getParam("codactividad"));
			  $this->view->priorityMessenger("El registro se eliminó correctamente", "success");
          } catch (Exception $e) {
			  $this->view->priorityMessenger($e->getMessage(), "error");
		  }
		$this->_helper->redirector("index");
	}
	
  public function guardaradjuntoAction(){
        $form = new Solicitudes_Form_Adjuntos();
        if($this->getRequest()->isPost() && $form->isValid($this->getRequest()->getPost())){
				try {
				    $datos_adj = $form->archivo->getFileInfo();
				    $ext = pathinfo( $datos_adj["archivo"]["name"], PATHINFO_EXTENSION );
				    $nuevo_nombre = md5( uniqid().$datos_adj["archivo"]["name"]).".".$ext;
//                    $form->archivo->addFilter('Rename',array('target' => $_SERVER['DOCUMENT_ROOT']."/cna/uploads/" . $nuevo_nombre ));
				    $form->archivo->addFilter('Rename', array('target'=>$form->archivo->getDestination(). "/{$nuevo_nombre}" ));
				    if ($form->archivo->receive()) {
					     $cronograma = new Solicitudes_Model_Cronogramas();
				         $datos_archivo["nombrereal"]   = $datos_adj["archivo"]["name"];
				         $datos_archivo["tipomime"]     = $datos_adj["archivo"]["type"];
				         $datos_archivo["tamano"]       = $datos_adj["archivo"]["size"];
				         $datos_archivo["nombrecodificado"] = $nuevo_nombre;
				         $datos_archivo["codusuario"]   = App_User::getCodigoUsuario();
						 $datos_archivo["codproceso"]  = $this->datosproceso["codproceso"];
						 
						 $cronograma->guardarAdjuntoCronograma($datos_archivo);
						 $this->view->priorityMessenger("Los datos se han guardado correctamente", "success");
				    }
                } catch (Exception $e) {
					$this->view->priorityMessenger($e->getMessage(), "error");
				}
        }
		$this->_helper->redirector("index");
	}
	
   public function finalizarcronogramaAction() {
        try {
            $historico = new Solicitudes_Model_Historicoprocesos();
//            $datos_historico["codusuario"] = App_User::getCodigoUsuario();
//	        $datos_historico["codestado"]  = Solicitudes_Model_Historicoprocesos::EN_AUTOEVALUACION;
//            $datos_historico["codproceso"] = $this->datosproceso["codproceso"];
//            $historico->guardarHistorico($datos_historico);
            $historico->guardarEstadoProceso($this->datosproceso["codproceso"], Solicitudes_Model_Historicoprocesos::EN_AUTOEVALUACION);
            $this->view->priorityMessenger("El proceso finalizó el cronograma de actividades correctamente", "success");
        } catch(Exception $e) {
            $this->view->priorityMessenger($e->getMessage(), "error");
        }
        $this->_helper->redirector("lista","index");
    }
}

